package com.niiwoo.activity.stage.service.content;

import com.niiwoo.activity.stage.dto.request.content.*;
import com.niiwoo.activity.stage.dto.response.content.*;
import com.niiwoo.tripod.provider.dto.response.PageResponseDTO;

import java.util.List;

/**
 * 小报童服务
 */
public interface LittleByMsgDubboService {
    /**
     * 获取小报童消息分页列表
     *
     * @param littleBoyMsgPageQueryReqDTO
     * @return
     */
    PageResponseDTO<LittleBoyMsgPageQueryRespDTO> getMessagePageList(LittleBoyMsgPageQueryReqDTO littleBoyMsgPageQueryReqDTO);

    /**
     * 获取消息详情
     *
     * @param id
     * @return
     */
    LittleBoyMsgDetailRespDTO getMessageDetails(Integer id);

    /**
     * 新增或修改消息
     *
     * @param littleBoyMsgAddReqDTO
     */
    void addOrUpdateMessage(LittleBoyMsgAddReqDTO littleBoyMsgAddReqDTO,Long managerId, String managerName);

    /**
     * 删除消息
     *
     * @param id
     */
    void delMessage(Integer id);

    /**
     * 撤回消息
     *
     * @param id
     */
    void cancelSendMessage(Integer id);

    /**
     * 删除单个消息内容
     *
     * @param contentId
     */
    void delMessageContent(Integer contentId);

    /**
     * 统计小报童消息点击量
     *
     * @param pvReqDTO
     */
    void statPV(LittleBoyMsgPVReqDTO pvReqDTO);

    /**
     * app端查询小报童列表
     * @param reqDto
     * @return
     */
	PageResponseDTO<LittleBoyMsgRespDTO> publicNumberMessageList(LittleBoyMsgReqDTO reqDto);

    /**
     * 同步用户信息
     *
     */
	void synUserInfo(LittleBoyUserRoleDTO reqDTO);

	/**
	 * 小报童导入手机号
	 * @param reqDTOList
	 * @return
	 */
	LittleBoyMsgExcelImportResultRespDTO importExcel(List<LittleBoyMsgExcelImportRespDTO> reqDTOList);

    MessagePushContentResqDTO publicNumberMessage(LittleBoyMsgReqDTO reqDto);

    /**
     * 初始化IM用户分组
     * @return
     */
    boolean initGroupUser();
}
